package com.tabjin.rfidsocket.mapper.mapper;

import com.tabjin.rfidsocket.pojo.vo.SysAclVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SysAclCustomMapper {

    List<SysAclVO> searchAclModuleItems(@Param("aclModuleId") Integer sysAclModuleId);

    /**
     * 权限模块数量
     *
     * @param aclModuleId
     * @return
     */
    Integer countByAclModuleId(@Param(value = "aclModuleId") Integer aclModuleId);
//    List<SysAclVO> getPageByAclModuleId(@Param("aclModuleId") Integer

    /**
     * 权限点数量，可用来判断某个权限模块下权限点时候重复
     *
     * @param aclModuleId 权限模块id
     * @param name        权限点名
     * @param aclId       权限点id
     * @return
     */
    Integer countByNameAndAclModuleId(
            @Param("aclModuleId") Integer aclModuleId,
            @Param("name") String name,
            @Param("aclId") Integer aclId);


    /**
     * 获取所有权限点
     *
     * @return
     */
    List<SysAclVO> getAll();

    /**
     * 获取权限点
     *
     * @param aclIdList 权限id列表
     * @return List<SysRoleVO>
     */
    List<SysAclVO> getByIdList(@Param(value = "idList") List<Integer> aclIdList);

    /**
     * 根据url获取权限点
     *
     * @param url
     * @return
     */
    List<SysAclVO> getByUrl(@Param(value = "url") String url);

    List<SysAclVO> searchAclModuleItemsWithoutPaged(@Param(value = "aclModuleIds") List<Integer> sysAclModuleIds);
}